Home  -   Blog  -   Fun Coding 🎉

Published

- 5 min read

How to Deploy ML Models: Basic Approaches

img of How to Deploy ML Models: Basic Approaches

#1 - Une petite histoire

carapuce
Carapuce est un Pokémon de type Eau, et il évolue ensuite en Carabaffe, puis en Tortank. Il est souvent décrit comme un petit Pokémon tortue aquatique avec une carapace dure sur son dos. Dans les jeux, il est apprécié pour sa résistance et sa capacité à apprendre des attaques de type Eau, ce qui en fait un choix populaire parmi les joueurs.

Objectifs:

  • Deployer un model de ML avec streamlit
  • Deployer un model de ML avec FastAPI
  • Deployer un model de ML avec Flask
  • Deployer un model de ML dans Flutter/Mobile/IoT
Alors, let go !

2 - Fondamentaux du déploiement des models & Techniques


Une manière de conceptualiser différentes approches pour déployer des modèles d\'apprentissage automatique est de réfléchir à l\'endroit où les déployer dans l\'architecture globale de votre application.
  • Le côté client s’exécute localement sur la machine de l’utilisateur (navigateur web, appareils mobiles, etc.).
  • Il se connecte au côté serveur qui exécute votre code à distance.
  • Le serveur se connecte à une base de données pour extraire les données, les afficher et les présenter à l’utilisateur.

Streamlit

OBJECTIFS

  1. Comprendre les bases de Streamlit
  2. Installation et premier code
  3. Maîtriser la visualisation de données
  4. Savoir déployer des applications Streamlit

1. Comprendre les bases de Streamlit

Streamlit est une solution open source conçue pour simplifier l’exploration et la visualisation des données. Grâce à son interface conviviale, vous pouvez facilement transformer vos scripts de données en applications Web dynamiques en utilisant seulement quelques lignes de code Python. De l’intégration de widgets, de graphiques et de cartes à l’affichage de tableaux et bien plus encore.

  • Data Exploration and Visualization:
  • Machine Learning Prototyping:

2. Installation et premier code

3. Initiation à la visualisation de données

!pip install streamlit pandas matplotlib seaborn
import pandas as pd
data = {
    "age": [25, 30, 35, 40, 45],
    "salaire": [50000, 60000, 70000, 80000, 90000],
    "experience": [2, 5, 8, 10, 12]
}
df = pd.DataFrame(data)
df.to_csv("utils/app_data.csv", index=False)
%%file utils/app.py
import streamlit as st
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

st.title('Visualisation des données avec Streamlit')
uploaded_file = st.file_uploader("Choisissez un fichier CSV", type="csv")

if uploaded_file is not None:
    df = pd.read_csv(uploaded_file)
    st.write("Aperçu des données")
    st.write(df.head())

    x_col = st.selectbox("Choisissez la colonne pour l'axe X", df.columns)
    y_col = st.selectbox("Choisissez la colonne pour l'axe Y", df.columns)


    st.write(f"Graphique de {x_col} vs {y_col}")
    plt.figure(figsize=(10, 6))
    sns.scatterplot(data=df, x=x_col, y=y_col)
    st.pyplot(plt)
!python -m streamlit run utils/app.py
You can now view your Streamlit app in your browser.
Local URL: http://localhost:8501
Network URL: http://10.152.80.114:8501
^C
Stopping...

4. Savoir déployer des applications Streamlit

Instructions : https://docs.streamlit.io/deploy/streamlit-community-cloud/get-started/create-your-account

Nous allons voir comment deployer avec Streamlit cloud: share.streamlit.io

Github

Vous devez avoir un repo sur github pour le projet a deployer. Deux fichier sont essentiel. votre vichier principal 'app.py' et le fichier de requirements



Any question?

4 - FastAPI

OBJECTIFS

  1. Comprendre les bases de FastAPI
  2. Installation et premier code
  3. Savoir déployer un web service fastapi

2. Installation et premier code

!pip install fastapi
%%file utils/main.py
from typing import Union
from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"Hello": "World"}

@app.get("/items/{item_id}")
def read_item(item_id: int, q: Union[str, None] = None):
    return {"item_id": item_id, "q": q}
!fastapi dev utils/main.py

3. Savoir déployer un web service fastapi:

Any question?

6 - Flutter/Mobile/IoT

Source: https://dev.to/mostafa_ead/integration-of-machine-learning-models-in-flutter-a-comprehensive-guide-3pag
Source: chat GPT

Objectifs

  • Voir comment on peut utliser un model dans dans flutter

Prérequis

  • Compréhension de base de Flutter et Dart
  • Familiarité avec les concepts de l’apprentissage automatique
  • SDK Flutter installé et configuré

L’intégration de modèles d’apprentissage automatique dans les applications Flutter peut être réalisée de différentes manières, en fonction de la complexité du modèle, des exigences en matière de calcul et de la question de savoir si l’inférence doit être effectuée sur l’appareil ou sur un serveur distant. Voici quelques approches courantes :

  1. Appel d’un web service
    Utilisation d’une api flask ou fastapi par exemple

  1. On-Device Machine Learning with TensorFlow Lite
    Il vous permet d’exécuter des modèles d’apprentissage automatique sur l’appareil, garantissant une faible latence et des capacités hors ligne.

  1. Utilisation d’ONNX Runtime:
    ONNX Runtime est un moteur d’inférence pour les modèles Open Neural Network Exchange (ONNX). Il prend en charge l’exécution de modèles sur différentes plateformes, y compris les mobiles.

  1. Utilisation de Firebase ML Kit:
    Firebase ML Kit fournit des API prêtes à l’emploi pour des cas d’utilisation courants de l’apprentissage automatique tels que la reconnaissance de texte, la détection de visages et l’étiquetage d’images. Il prend en charge les modèles d’apprentissage automatique à la fois sur l’appareil et basés sur le cloud.
Wrote with love by: Généreux Akotenou - For Data Hub Africa Summer School

Related Posts

There are no related posts yet. 😢